Computer systems and related technology affect many aspects of society. Indeed, the computer system's ability to process information has transformed the way we live and work. Computer systems now commonly perform a host of tasks (e.g., word processing, scheduling, and database management) that prior to the advent of the computer system were performed manually. More recently, computer systems have been coupled to one another and to other electronic devices to form both wired and wireless computer networks over which the computer systems and other electronic devices can transfer electronic data. As a result, many tasks performed at a computer system (e.g., voice communication, accessing electronic mail, controlling home electronics, Web browsing, and printing documents) include the exchange of electronic messages between a number of computer systems and/or other electronic devices via wired and/or wireless computer networks.
In virtually any computing environment, users often switch between differently configured components, such as, for example, different applications and/or different data. Often, these different applications and different data are relevant to one another. For example, in Line of Business (“LOB”) systems references often refer to instances, such as, for example, of a specific customer, a specific order, or a specific product. Thus, in the course of preparing a customer proposal, a sales manager may want to compare a number of alternative products from various suppliers to decide on a product strategy. Accordingly, each alternative product is relevant to every other alternative product and to the customer proposal.
Often, the manipulation of different types of data through the use of different applications is part of a human-driven process initiated and understood by a user of a computer system. For example, the sales manager may access product data from different suppliers, potentially using different applications. Some product data may be obtained through electronic mail, some through Web browsing, some through telephone communication, etc. It may be the responsibility of the sales manager to then compile a summary of the customer proposal for corporate executives. However, from the perspective of a computer system that runs the applications and manipulates the data, the process is an unstructured process. That is, the process from accessing product data through different applications and then compiling a summary exists in the sales manager's mind but no formal description of the process is known to the computer system. Thus, there is typically no computer based assistance providing an overall task status or computer based guidance in coordinating applications. Accordingly, the burden for maintaining a task status and coordinating applications falls on the sales manager.
Thus, if a user has to suspend work on a human-driven process (e.g., to work on some other process), there is often no easy way to return to the point in the process where work was suspended. That is, there is typically no computer based mechanism for suspending and resuming a task that spans multiple data types, applications, etc. As a result, a user is often required to remember where they were. If a user is not precise in their remembrance, the user may be required to redo some amount of work that was previously performed. For example, when returning to customer proposed project, the sales manager may have to locate and re-review e-mails, Web pages, and phone messages to re-identify products from different suppliers.
Similar, and potentially more difficult, problems can occur when a first user performs one portion of a human-driven process and a second different user (e.g., as a result of the first user delegating responsibility) performs another portion of the human-driven process. That is, there is typically no computer based mechanism for implementing mulit-user based tasks when different portions of the task rely on different data types and different applications. As a result, the second user may have no way to know how far along in the human-driven process the first user was before the second user began working on the human-driven process. For example, the sales manager may begin work on the customer proposal and then, at some future point, delegate completion of the customer proposal to an assistant. Unfortunately, to insure that the customer proposal is correct, the assistant may have to re-perform at least some of the actions the sales manager has already performed. For example, the assistant may need to locate and re-review e-mails, Web pages, and phone messages that the sales manager has already reviewed.
Other similar problems can occur when different portions of a task rely on differently configured computer system components, such as, for example, differently configured user-interfaces, differently configured security requirements, differently configured connectivity requirements, etc. As result, a user is often forced to re-identify previously identified data and re-performed previously performed work. Re-identifying previously identified data and re-performing previously performed work is inefficient and can reduce productivity.